Eli Zaretskii [Sat, 16 Jan 2021 18:18:32 +0000 (20:18 +0200)]
Fix Rmail summary for more than 99,999 messages
* lisp/mail/rmailsum.el (rmail-summary-font-lock-keywords): Don't
assume there will be less than 100,000 messages in an mbox file.
(Bug#45912)
Eli Zaretskii [Sat, 16 Jan 2021 18:15:17 +0000 (20:15 +0200)]
Fix two tests
* test/lisp/progmodes/elisp-mode-tests.el (xref-elisp-test-run):
Make sure file names can be compared as strings, by running them
through 'file-truename'. Reported by Vin Shelton
<acs@alumni.princeton.edu>.
* test/lisp/emacs-lisp/bytecomp-tests.el ("warn-obsolete-hook.el")
("warn-obsolete-variable.el"): Use [^z-a] to match a newline as
well. Reported by Vin Shelton <acs@alumni.princeton.edu>.
Ted Zlatanov [Sat, 16 Jan 2021 15:45:05 +0000 (15:45 +0000)]
test/infra/gitlab-ci.yml: run only for tags and some branches
Eli Zaretskii [Sat, 16 Jan 2021 14:54:01 +0000 (16:54 +0200)]
Improve support for Cham script
* lisp/language/cham.el ("Cham"): Expand the entry.
* etc/HELLO: Add entry for Cham.
Ted Zlatanov [Sat, 16 Jan 2021 13:03:58 +0000 (13:03 +0000)]
EMBA container build improvements for Emacs build testing.
* test/infra/gitlab-ci.yml: Moved from .gitlab-ci.yml. Use the
EMBA container registry with a different login token storage file
for each commit. Split test stages into prep, build, fast tests,
normal tests, platform tests, and slow (everything) and use
templates where possible.
* .gitlab-ci.yml: Include test/infra/gitlab-ci.yml and move all
content there.
Eli Zaretskii [Sat, 16 Jan 2021 13:02:48 +0000 (15:02 +0200)]
Fix last change
* src/frame.c (Fset_mouse_position, Fset_mouse_pixel_position):
Don't compile the FRAME_MSDOS_P case on platforms other than
MSDOS, as that will never happen there.
Jared Finder [Wed, 2 Dec 2020 08:05:59 +0000 (00:05 -0800)]
Make mouse-related calls be more consistent on all frame types
* src/frame.c (Fset_mouse_position, Fset_mouse_pixel_position): Call
Fselect_frame and appropriate mouse_moveto function on all non-GUI
frame types, independent of #ifdef's.
* src/term.c (init_tty): Initialize mouse_face_window for all
non-GUI frame types.
(term_mouse_moveto) [HAVE_GPM]: Make available even if
HAVE_WINDOW_SYSTEM is defined.
* src/xdisp.c (try_window_id): Call gui_clear_window_mouse_face
in all cases.
Stefan Monnier [Sat, 16 Jan 2021 04:18:08 +0000 (23:18 -0500)]
* lisp/frame.el Don't activate `blink-cursor-idle-timer` needlessly.
(blink-cursor-mode): Use `blink-cursor-check` rather than
`blink-cursor--start-idle-timer` so we check for the presence of
a frame where the cursor can be blinked before activating the idle timer.
Kévin Le Gouguec [Sun, 10 Jan 2021 09:43:41 +0000 (10:43 +0100)]
Change default-directory before prompting in project-compile
This causes command completion to work from the project root, letting
users complete top-level folders, make targets, etc (bug#45765).
* lisp/progmodes/project.el (project-compile): Simplify using
call-interactively, as done with project(-async)-shell-command.
Stefan Monnier [Sat, 16 Jan 2021 03:38:52 +0000 (22:38 -0500)]
* src/dispnew.c (sit_for): Return nil when interrupted by process output
Before
adbb4eacc2a984c0fc0b65ec761368fd9067d6c5,
`read_and_dispose_of_process_output` called
`record_asynch_buffer_change` which added "artificial" input events
(in the form of BUFFER_SWITCH_EVENTs), causing sit_for to return
Qnil when interrupted by process output. Without those BUFFER_SWITCH_EVENTs,
sit_for now tends to return Qt when interrupted by process output
making `read_char` believe that we've waited the whole timeout,
As consequence incoming process output tended to cause premature
auto-saving of files (sometimes right after almost every key press).
This patch recovers the previous behavior, which is not ideal
(incoming process output can delay auto-save indefinitely), but has
been good enough for many years.
Basil L. Contovounesios [Fri, 15 Jan 2021 21:30:14 +0000 (21:30 +0000)]
; Remove recent spurious addition in window.el
* lisp/window.el (display-buffer-use-some-window): Remove spurious
message included in 2021-01-11 "Support using auth-source for
NickServ passwords in ERC" (bug#45340#44).
Phillip Lord [Thu, 14 Jan 2021 22:51:13 +0000 (22:51 +0000)]
Remove support for 32 bit build
* admin/nt/dist-build/README-scripts: Update
* admin/nt/dist-build/README-windows-binaries: Update
* admin/nt/dist-build/build-zips.sh: Remove 32 bit and fix paths
* admin/nt/dist-build/build-dep-zips.py: Remove 32 bit and update
paths
* admin/nt/dist-build/emacs.nsi: Remove 32 bit and fix paths
Phillip Lord [Thu, 7 Jan 2021 22:06:53 +0000 (22:06 +0000)]
Update dependency capture
* admin/nt/dist-build/build-dep-zips.py: Use ntldd to directly
determine DLL dependencies
Stephen Leake [Fri, 15 Jan 2021 18:03:06 +0000 (10:03 -0800)]
* .gitignore: add src/fingerprint.c
* lisp/dired-x.el (dired-file-name-at-point): Fix spelling in obsolete
message.
Aaron Jensen [Sun, 10 Jan 2021 02:43:32 +0000 (20:43 -0600)]
Fix 'window-text-pixel-size' when there are leading/trailing spaces
First, scan to find the first non-whitespace character and then
backtrack to find the beginning of the line. The previous
algorithm always started on the non-whitespace character during
the backtrack, causing it to stop immediately and not actually
find the beginning of the line. The same applies to the end of
line calculation.
* src/xdisp.c: (Fwindow_text_pixel_size): Fix off by one error.
(Bug#45748)
* test/src/xdisp-tests.el (xdisp-tests--window-text-pixel-size)
(xdisp-tests--window-text-pixel-size-leading-space)
(xdisp-tests--window-text-pixel-size-trailing-space): New tests.
Jared Finder [Sat, 2 Jan 2021 22:10:17 +0000 (14:10 -0800)]
Make libraries works with xterm-mouse-mode.
Change calls from 'read-event' to 'read-key' in libraries expecting
mouse events. Do this only when 'xterm-mouse-mode' is enabled. That
way those libraries read decoded mouse events instead of the
underlying escape sequence. Add a parameter to 'read-key' that avoids
running any of the unbound fallbacks in 'read-key-sequence' so the
libraries can read mouse button-down events.
For backward compatibility purposes, the above logic is contained in a
new internal-only function: 'read--potential-mouse-event'.
* doc/lispref/commands.texi (Reading One Event): Document new
parameter to 'read-key'. Mention that non-character events on
terminals need 'read-key'.
* lisp/subr.el (read-key-full-map): Add new keymap used by 'read-key'.
(read-key): Add new parameter 'fallbacks-disabled' to prevent running
any of the unbound fallbacks normally run by 'read-key-sequence'.
(read--potential-mouse-event): Add new function that calls 'read-key'
or 'read-event' depending on if 'xterm-mouse-mode' is set.
* lisp/foldout.el (foldout-mouse-swallow-events):
* lisp/isearch.el (isearch-pre-command-hook):
* lisp/mouse-drag.el (mouse-drag-throw, mouse-drag-drag):
* lisp/mouse.el (mouse-drag-secondary):
* lisp/ruler-mode.el (ruler-mode-mouse-grab-any-column)
(ruler-mode-mouse-drag-any-column-iteration):
* lisp/strokes.el (strokes-read-stroke, strokes-read-complex-stroke):
* lisp/textmodes/artist.el (artist-mouse-draw-continously)
(artist-mouse-draw-poly, artist-mouse-draw-2points):
* lisp/vc/ediff-wind.el (ediff-get-window-by-clicking):
* lisp/wid-edit.el (widget-button--check-and-call-button)
(widget-button-click): Call 'read--potential-mouse-event' instead of
'read-event'.
* lisp/wid-edit.el (widget-key-sequence-read-event): Call 'read-key'
with 'fallbacks-disabled' set instead of 'read-event'. Unlike above
changes, this is unconditionally applied so it works for function
keys too. Apply 'local-function-key-map' instead of
'function-key-map' as that contains the full terminal translations.
* lisp/vc/ediff.el (ediff-windows): Use 'display-mouse-p' to check if
a mouse is available.
* src/lread.c (Fread_event): Recommend 'read-key' in docstring for
'read-event' for non-character events.
Michael Albinus [Fri, 15 Jan 2021 10:32:12 +0000 (11:32 +0100)]
Some Tramp adaptions, mainly direct async processes
* doc/misc/tramp.texi (Firewalls, Remote processes)
(Frequently Asked Questions): Add @vindex.
(Predefined connection information): Precise precondition or direct
async processes.
(Remote shell setup): Ban ssh RemoteCommand option.
(Frequently Asked Questions): Adapt quoting.
* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.5.1-pre".
* lisp/net/tramp-adb.el (tramp-methods) <adb>: Add `tramp-direct-async'
parameter.
(tramp-adb-handle-make-process): Adapt docstring.
* lisp/net/tramp-sh.el (tramp-methods) <scp, scpx, rsync, ssh, sshx>:
Add `tramp-direct-async' parameter.
(tramp-sh-handle-insert-directory): Simplify merkers.
(tramp-sh-handle-make-process): Adapt docstring.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-debug-message): Suppress lockfiles.
(tramp-test-message): New defun.
(tramp-direct-async-process-p): Check also for `tramp-direct-async'.
(tramp-handle-make-process): Do not check for `tramp-direct-async-args'.
* test/lisp/net/tramp-tests.el (all): Replace `string-match' by
`string-match-p'.
(dired-copy-dereference): Declare.
(tramp-test-temporary-file-directory):
Remove `tramp-direct-async-args` for mock method.
(tramp-test15-copy-directory, tramp-test40-special-characters)
(tramp-test40-special-characters-with-stat)
(tramp-test40-special-characters-with-perl)
(tramp-test40-special-characters-with-ls, tramp-test41-utf8)
(tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl)
(tramp-test41-utf8-with-ls): Skip for tramp-rclone.el.
(tramp--test--deftest-direct-async-process): Do not skip for mock
method.
(tramp-test32-shell-command): Adapt test for direct async processes.
(tramp-test36-vc-registered, tramp--test-hpux-p, tramp--test-ksh-p):
Use `tramp-test-vec'.
Glenn Morris [Fri, 15 Jan 2021 09:38:20 +0000 (09:38 +0000)]
* lisp/emacs-lisp/seq.el (seq-concatenate): Unautoload (merge fix).
gitmerge-skip-regexp does not handle line breaks.
Eli Zaretskii [Fri, 15 Jan 2021 08:12:09 +0000 (10:12 +0200)]
Fix 'kill-visual-line'
* lisp/simple.el (kill-whole-line): Mention in the doc string that
this option affects 'kill-visual-line' as well.
(kill-visual-line): Improve the doc string. Delete the character
at which the line was wrapped under 'visual-line-mode'. Don't
indiscriminately delete whitespace following the wrap point.
(Bug#45837)
Stefan Monnier [Thu, 14 Jan 2021 22:37:57 +0000 (17:37 -0500)]
* lisp/startup.el (command-line): Remove redundant set of no-blinking-cursor
This is redundant because this was set based on "X" resources under
(memq window-system '(x w32 ns)) but the exact same resources and
values are tested in `x-apply-session-resources` which is also used for
those 3 window systems.
Stefan Monnier [Thu, 14 Jan 2021 22:21:56 +0000 (17:21 -0500)]
* lisp/startup.el (command-line): Remove redundant set of no-blinking-cursor
This was set when (or noninteractive emacs-basic-display), but
the code that sets `emacs-basic-display` also sets `no-blinking-cursor`
and `blink-cursor-mode`s value already tests `noninteractive`
alongside `no-blinking-cursor`.
Stefan Monnier [Thu, 14 Jan 2021 21:45:40 +0000 (16:45 -0500)]
Fix marking "delayed-initialization" vars as dynamically scoped
We used to mark those vars as dynbound in `custom-reevaluate-setting`
which forced us to bind `current-load-list` around it to avoid having
the vars be associated with the wrong file. Move this marking to
`custom-initialize-delay` so we don't need this workaround.
* lisp/custom.el (custom-initialize-delay): Mark the var as dynamic.
(custom-reevaluate-setting): Don't use `defvar` here.
* lisp/startup.el (command-line): Don't let-bind `current-load-list`
around calls to `custom-reevaluate-setting`.
Juri Linkov [Thu, 14 Jan 2021 19:08:46 +0000 (21:08 +0200)]
* lisp/info.el (Info-search): Don't deactivate mark when landed in same node
(bug#45839)
Glenn Morris [Thu, 14 Jan 2021 15:50:28 +0000 (07:50 -0800)]
Merge from origin/emacs-27
488204cdc6 (origin/emacs-27) Remove one of recently added warnings ab...
55bc1560ac Fix assertion failure in window_box_height (Bug#45737)
27743e9e70 Fix cl-concatenate inlining
32a3758c84 Fix infloop in 'pixel-scroll-mode'
74d18957b8 Fix inhibiting the default.el loading in user init file
Glenn Morris [Thu, 14 Jan 2021 15:50:28 +0000 (07:50 -0800)]
; Merge from origin/emacs-27
The following commit was skipped:
5d76288660 Fix problem with 8bit content-transfer-encoding in nndoc m...
Glenn Morris [Thu, 14 Jan 2021 15:50:25 +0000 (07:50 -0800)]
Merge from origin/emacs-27
149d64bbb2 * doc/misc/tramp.texi (Quick Start Guide): Fix thinko.
97747e6fb9 Tell people how to remove fontconfig customizations
33d0c603c6 ; * doc/lispref/modes.texi (SMIE Indentation Example): Fix...
03080b5545 Remove extraneous closing paren
Ted Zlatanov [Thu, 14 Jan 2021 10:34:09 +0000 (10:34 +0000)]
EMBA infrastructure improvements for Emacs build testing.
* .gitlab-ci.yml: Use job templates and rules. Split tests into
fast/normal/slow. Make Docker images for each tested platform
(inotify, filenotify-gio, gnustep). Increase timeout.
* test/Makefile.in (check-lisp, check-net): Add new testing
targets.
* test/README: Document them.
* test/file-organization.org: Mention test/infra.
* test/infra/Dockerfile.emba: Add special Docker recipes for EMBA
testing.
Juri Linkov [Wed, 13 Jan 2021 18:32:36 +0000 (20:32 +0200)]
Remove one of recently added warnings abound binding keys in Isearch maps
* lisp/isearch.el (minibuffer-local-isearch-map): Remove comments
which warn against wantonly rebinding unbound keys from
irrelevant keymap.
https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00259.html
Juri Linkov [Wed, 13 Jan 2021 18:19:22 +0000 (20:19 +0200)]
* lisp/isearch.el: C-s C-u M-y reads a string from the kill-ring minibuffer
* lisp/isearch.el (isearch-yank-from-kill-ring): New command
with code moved from isearch-yank-pop.
(isearch-yank-pop): Use isearch-yank-from-kill-ring.
(isearch-yank-pop-only): Add optional arg, and call
isearch-yank-from-kill-ring when the prefix arg is C-u.
https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00089.html
Stefan Kangas [Wed, 13 Jan 2021 17:54:09 +0000 (18:54 +0100)]
Lift {global,local}-key-binding to Lisp
* lisp/subr.el (local-key-binding, global-key-binding): New defuns.
* src/keymap.c (Flocal_key_binding, Fglobal_key_binding): Remove DEFUNs.
(syms_of_keymap): Remove defsubrs for above DEFUNs.
* test/lisp/subr-tests.el (subr-test-local-key-binding)
(subr-test-global-key-binding): New tests.
Stefan Kangas [Wed, 13 Jan 2021 16:39:53 +0000 (17:39 +0100)]
Prefer skip-unless in more tests
* test/lisp/emacs-lisp/timer-tests.el (timer-tests-debug-timer-check):
* test/src/decompress-tests.el (zlib--decompress):
* test/src/xml-tests.el (libxml-tests): Prefer skip-unless.
Eli Zaretskii [Wed, 13 Jan 2021 14:45:31 +0000 (16:45 +0200)]
Fix 'visual-line-mode' when 'word-wrap-by-category' is in effect
* src/xdisp.c (move_it_in_display_line_to): Don't reset
next_may_wrap after saving a potential wrap point. This fixes the
case where several characters in a row can serve as a wrap point.
(Bug#45837)
Stefan Kangas [Wed, 13 Jan 2021 14:23:31 +0000 (15:23 +0100)]
Use skip-unless instead of if+message in test
* test/lisp/cedet/semantic-utest.el (semantic-utest-Javascript):
Use skip-unless instead of if+message.
Stefan Kangas [Wed, 13 Jan 2021 14:17:44 +0000 (15:17 +0100)]
Remove some XEmacs compat code from tests
* test/lisp/cedet/srecode-utest-getset.el
(srecode-utest-getset-output):
* test/lisp/cedet/srecode-utest-template.el
(srecode-utest-template-output): Remove XEmacs compat code.
Stefan Kangas [Wed, 13 Jan 2021 14:12:08 +0000 (15:12 +0100)]
* lisp/calc/calc.el: Remove some XEmacs compat code.
Mattias Engdegård [Wed, 13 Jan 2021 13:16:57 +0000 (14:16 +0100)]
Stabilise lunar-phase-list test (bug#45818)
The test reference data was produced with accidental interference from
the system daylight saving in effect at the time. Prevent that
from occurring again and correct the data.
* test/lisp/calendar/lunar-tests.el (with-lunar-test):
Switch to UTC and make sure daylight saving adjustment is disabled.
Use normal time presentation for maintainability.
* test/lisp/calendar/lunar-tests.el (lunar-test-phase): Adjust to UTC.
(lunar-test-phase-list): Adjust to UTC with correct times.
Enable the test by removing its :unstable mark.
Mattias Engdegård [Tue, 12 Jan 2021 20:38:47 +0000 (21:38 +0100)]
Fix Indian time zone test when run by Irishmen (bug#45818)
* test/lisp/calendar/solar-tests.el (solar-sunrise-sunset):
Inhibit any attempt by confused calendar code to apply daylight saving
correction when Irish time zone settings are in effect. It's not
entirely clear why this is needed but may be related to the fact that
'IST' stands for both Irish and Indian Standard Time, and that Ireland
uses reversed daylight saving in winter.
Arash Esbati [Tue, 12 Jan 2021 16:18:24 +0000 (17:18 +0100)]
; Update docstring
* lisp/textmodes/reftex-vars.el (reftex-label-regexps): Track the
latest addition of "frame" environment.
Robert Pluim [Tue, 12 Jan 2021 17:50:38 +0000 (18:50 +0100)]
Only run IPv6 tests if we have an IPv6 address
* test/src/process-tests.el (ipv6-is-available): New function for
checking whether we have a globally routable IPv6 prefix assigned.
(lookup-family-specification): Use 'ipv6-is-available' to check for
IPv6. Use 'localhost' instead of 'google.com' to test
'network-lookup-address-info' API.
(lookup-google): Use 'ipv6-is-available' to check for
IPv6.
* test/lisp/net/nsm-tests.el (nsm-ipv6-is-available): Rename to
'ipv6-is-available', make identical to the one in
test/src/process-tests.el.
Robert Pluim [Tue, 12 Jan 2021 17:36:01 +0000 (18:36 +0100)]
Fix nsm-should-check for "google.com" failure
* lisp/net/nsm.el (nsm-should-check): Extract the mask from
'network-interface-list' rather than the broadcast
address (Bug#45798).
Lars Ingebrigtsen [Tue, 12 Jan 2021 17:43:53 +0000 (18:43 +0100)]
Add a new function 'buffer-line-statistics'
* src/fns.c (Fbuffer_line_statistics): New function.
Lars Ingebrigtsen [Tue, 12 Jan 2021 14:12:28 +0000 (15:12 +0100)]
Add a new variable `inhibit-interaction'
* doc/lispref/elisp.texi (Top): Add a link.
* doc/lispref/errors.texi (Standard Errors): Mention the new error.
* doc/lispref/minibuf.texi (Minibuffers): Add a link.
(Inhibiting Interaction): New node.
* src/data.c (syms_of_data): Define the `inhibited-interaction' error.
* src/lisp.h: Export the barfing function.
* src/lread.c (Fread_char, Fread_event, Fread_char_exclusive):
Barf if inhibited.
* src/minibuf.c (barf_if_interaction_inhibited): New function.
(Fread_from_minibuffer, Fread_no_blanks_input): Barf if inhibited.
(syms_of_minibuf): Define the `inhibit-interaction' variable.
Glenn Morris [Tue, 12 Jan 2021 13:41:13 +0000 (05:41 -0800)]
Update substitute-command-keys tests, again
* test/lisp/help-tests.el (help-tests-substitute-command-keys/keymaps)
(help-tests-substitute-command-keys/keymap-change):
Update following recent minibuffer changes.
Brian Leung [Tue, 12 Jan 2021 12:29:03 +0000 (13:29 +0100)]
comint-read-input-ring: Simplify last commit
* lisp/comint.el (comint-read-input-ring): It is not necessary to use
`goto-char' again since we have already moved point to the desired
location (bug#45797).
Stefan Monnier [Mon, 11 Jan 2021 21:44:39 +0000 (16:44 -0500)]
* lisp/emacs-lisp/eieio-base.el: Silence warnings in last change
(eieio-persistent-make-instance): Quote the `eieio-named` class name.
(eieio-named): Move before `eieio-persistent`.
Eric Ludlam [Sun, 10 Jan 2021 15:37:50 +0000 (10:37 -0500)]
cedet/ede/auto.el:
(ede-calc-fromconfig): New method. Support functions in addition to
string matchers.
(ede-dirmatch-installed, ede-do-dirmatch):
Use `ede-calc-fromconfig' to do conversion.
Author: Eric Ludlam <zappo@gnu.org>
Eric Ludlam [Sun, 10 Jan 2021 15:54:49 +0000 (10:54 -0500)]
eieio-base.el:
(eieio-persistent-make-instance): Save the backward compatible 'name'
of objects saved in the file, and if the newly loaded class inherits
from 'eieio-named', restore the name of the object.
Author: Eric Ludlam <zappo@gnu.org>
Eric Abrahamsen [Mon, 11 Jan 2021 17:46:58 +0000 (09:46 -0800)]
Fix possible prepending of "TEXT" to IMAP searches
* lisp/gnus/gnus-search.el (gnus-search-imap-search-keys): Add missing
keys "old", "new", "or" and "not".
(gnus-search-run-search): In addition, don't touch the query if it
starts with a parenthesis. Consider just getting rid of this
convenience altogether.
Stephen Leake [Mon, 11 Jan 2021 17:18:31 +0000 (09:18 -0800)]
* admin/notes/elpa: Update to match recent Gnu ELPA changes
Lars Ingebrigtsen [Mon, 11 Jan 2021 16:06:11 +0000 (17:06 +0100)]
Mark previous erc-services change as not needing documentation
Brian Leung [Mon, 11 Jan 2021 15:42:03 +0000 (16:42 +0100)]
Make comint-read-input-ring skip uninteresting text in .zsh_history
* lisp/comint.el (comint-read-input-ring): Simplify (bug#45606).
* lisp/shell.el (shell-mode): Add "~/.zsh_history".
* lisp/comint.el (comint-read-input-ring): Bind
`comint-input-ring-file-prefix' in anticipation of a buffer switch.
* lisp/comint.el (comint-read-input-ring): Skip the separator.
Because re-search-backward moves point to the beginning of the match,
and since we don't want the separator appearing in the output, we skip
over it.
This is required to properly detect instances of the value that zsh
uses for `comint-input-ring-file-prefix'; if the
`comint-input-ring-file-prefix' is ':potato', the subsequent
invocation `looking-at' sees '\n:potato' for all entries after the one
at the very beginning of the history file.
Anticrisis [Mon, 11 Jan 2021 15:16:50 +0000 (16:16 +0100)]
Add a failing test for bug#44834
* test/lisp/progmodes/tcl-tests.el (tcl-mode-namespace-indent-2):
New, failing test (bug#44834).
(tcl-mode-function-name-2):
(tcl-mode-function-name-3): Fix names of the tests so that they're
actually run.
Copyright-paperwork-exempt: yes
Leon Vack [Mon, 11 Jan 2021 14:51:14 +0000 (15:51 +0100)]
Support using auth-source for NickServ passwords in ERC
* lisp/etc/erc-services.el (erc-nickserv-passwords): Document that
the passwords are only used when erc-prompt-for-nickserv-password
is nil.
* (erc-use-auth-source-for-nickserv-password): New customizable
variable to enable checking auth-source for NickServ passwords.
* (etc-nickserv-get-password): New function to handle the lookup
of the NickServ password from both auth-source and the
erc-nickserv-passwords variable.
* (erc-nickserv-call-identify-function): Use new
erc-nickserv-get-password function to lookup NickServ passwords.
* (erc-nickserv-identify-autodetect, erc-nickserv-identify-on-connect,
erc-nickserv-identify-on-nick-change): Call
erc-nickserv-call-identify-function when
erc-use-auth-source-for-nickserv-password is set.
* etc/NEWS: Document change (bug#45340).
Alexandre Duret-Lutz [Mon, 11 Jan 2021 14:27:54 +0000 (15:27 +0100)]
Fix problem with non-ASCII characters in nnmaildir
* lisp/gnus/nnmaildir.el (nnmaildir-request-article): Enable
multipart 8bit-content-transfer-encoded files to be displayed
correctly by reading as `raw-text' instead of having Emacs
(incorrectly) decode the files (bug#44307).
Copyright-paperwork-exempt: yes
Pedro Andres Aranda Gutierrez [Mon, 11 Jan 2021 14:07:01 +0000 (15:07 +0100)]
Add `flat-button' to custom-face-attributes
* lisp/cus-face.el (custom-face-attributes): Add `flat-button'
(bug#45769).
Robert Pluim [Mon, 11 Jan 2021 12:16:59 +0000 (13:16 +0100)]
* configure.ac: Alphabetize emacs_config_features
Robert Pluim [Mon, 11 Jan 2021 12:11:51 +0000 (13:11 +0100)]
Ensure HAVE_GMP is reflected in emacs_config_features
* configure.ac: Move HAVE_GMP setting before emacs_config_features
setting (Bug#45771).
Dmitry Gutov [Sun, 10 Jan 2021 22:44:38 +0000 (00:44 +0200)]
New command xref-quit-and-pop-marker-stack
* lisp/progmodes/xref.el (xref-quit-and-pop-marker-stack):
New command.
(xref--xref-buffer-mode-map): Binding for it.
Phillip Lord [Sun, 10 Jan 2021 21:49:51 +0000 (21:49 +0000)]
Allow evaluation of tests from local source repository
* etc/w32-feature.el (w32-feature-load-tests): Add new command
Philipp Stephani [Sun, 10 Jan 2021 21:35:02 +0000 (22:35 +0100)]
Fix build breakage if Lisp_Object is not a primitive type.
* src/minibuf.c (choose_minibuf_frame): Don't compare Lisp_Objects
with '!='. Use 'EQ' instead.
Philipp Stephani [Sun, 10 Jan 2021 21:28:31 +0000 (22:28 +0100)]
Add functions to open a file without quitting.
In some situations, e.g. when the Lisp machinery isn't available, we
can't quit. Don't check the quit flags in such situations, in case
they contain garbage.
* src/sysdep.c (emacs_open_noquit, emacs_openat_noquit): New variants
of 'emacs_open' and 'emacs_openat' that don't check the quit flags.
* src/emacs.c (main, Fdaemon_initialized):
* src/pdumper.c (pdumper_load):
* src/w32term.c (w32_initialize):
* src/buffer.c (mmap_init):
* src/callproc.c (emacs_spawn): Use them where we can't quit.
Alan Mackenzie [Sun, 10 Jan 2021 20:32:40 +0000 (20:32 +0000)]
Fix incompleteness in the implementation of minibuffer-follows-selected-frame
In particular, add a new value to the variable, and fix several bugs apparent
with the implementation up till now.
* doc/emacs/mini.texi (Basic Minibuffer): Add a description of the new
non-nil, non-t value of minibuffer-follows-selected-frame.
* doc/emacs/trouble.texi (Quitting): Add a description of how C-g handles
recursive minibuffers when typed in one which isn't the most nested.
* doc/lispref/minibuf.texi (Intro to Minibuffers): Add an @dfn for "active
minibuffer".
(Minibuffer Commands): Document that exit-minibuffer throws an error when not
invoked from the innermost Minibuffer.
(Recursive Mini): Amend the description of the visibility of outer level
minibuffers.
(Minibuffer Misc): In the description of the minibuffer hooks, replace "the
minibuffer" with "a minibuffer".
* etc/NEWS (Entry announcing minibuffer-follows-selected-frame): Add a
description of the new non-nil, non-t value.
* lisp/cus-start.el (top level): make the customize entry for
minibuffer-follows-selected-frame a choice between three entries.
* lisp/minibuffer.el (exit-minibuffer): throw an error when we're not in the
most nested minibuffer.
(top level): Bind C-g to abort-minibuffers in minibuffer-local-map.
* lisp/window.el (window-deletable-p): return the symbol `frame' when (amongst
other things) minibuffer-follows-selected-frame is t.
* src/eval.c (internal_catch): Add a mechanism to (throw 'exit t) repeatedly
when the throw currently being processed doesn't terminate the current
minibuffer.
* src/lisp.h (this_minibuffer_depth): New extern declaration
(minibuf_level): extern declaration moved here from window.h.
* src/minibuf.c (minibuffer_follows_frame, minibuf_stays_put)
(minibuf_moves_frame_when_opened): New and amended functions to query the
value of minibuffer-follows-selected-frame.
(choose_minibuf_frame): check (minibuf > 1) in place of (minibufer > 0) at a
particular place. At another place, check that an alleged frame is so and is
live. Before selecting a non-miniwindow on a different frame, ensure it
really is a different frame.
(move_minibuffer_onto_frame): Stack up all recursive minibuffers on the target
frame. Check the minibuf_window isn't in the old frame before setting that
frame's miniwindow to an inactive minibuffer.
(Finnermost_minibuffer_p, Fabort_minibuffers): New primitives.
(this_minibuffer_depth): New function.
(read_minibuf): Record the calling frame in a variable, and switch back to it
after the recursive edit has terminated normally, using
select-frame-set-input-focus. Stack up all the recursive minibuffers on the
miniwindow where a new minibuffer is being opened. After the recursive edit,
switch the selected window away from the expired minibuffer's window.
(nth_minibuffer): New function.
(minibuffer-follows-selected-frame): Change from a DEFVAR_BOOL to a
DEFVAR_LISP.
* src/window.c (decode_next_window_args): Set *minibuf to w's mini-window's
content when that content is a minibuffer.
* src/window.h (minibuf_level) Declaration moved from here to lisp.h.
Lars Ingebrigtsen [Sun, 10 Jan 2021 15:16:42 +0000 (16:16 +0100)]
Respect message-forward-ignored-headers more
* lisp/gnus/message.el (message-forward-ignored-headers): Clarify
doc string once again.
(message-forward-make-body-mime): Remove headers when not
encrypted (bug#45631).
(message-forward-make-body): Pass in correct values.
Glenn Morris [Sun, 10 Jan 2021 14:48:57 +0000 (15:48 +0100)]
Default python-shell-interpreter to python3
* lisp/progmodes/python.el (python-shell-interpreter): Default to
python3 (bug#45655).
David Edmondson [Sun, 10 Jan 2021 14:45:07 +0000 (15:45 +0100)]
Fix example in the Gnus manual
* doc/misc/gnus.texi (Score Variables): In the example showing how to
use a list of functions for gnus-score-find-score-files-find-function,
return a list of strings from the lambda rather than trying to call
the string as a function (bug#45673).
Lars Ingebrigtsen [Sun, 10 Jan 2021 14:32:57 +0000 (15:32 +0100)]
Specify precedence in .authinfo files
* doc/misc/auth.texi (Help for users): Mention placing more
specific entries first (bug#45711).
Lars Ingebrigtsen [Sun, 10 Jan 2021 14:04:39 +0000 (15:04 +0100)]
Improve fill-region-as-paragraph when there's a fill prefix
* lisp/textmodes/fill.el (fill-region-as-paragraph): Try to
improve how line breaks are set on unbreakable text with a fill
prefix area that has spaces within (bug#45720).
k3tu0isui [Sun, 10 Jan 2021 13:36:51 +0000 (14:36 +0100)]
Make font locking work in mercury-mode
* lisp/progmodes/prolog.el (prolog-font-lock-keywords): Work in
all modes derived from prolog-mode (bug#45747).
(mercury-mode): Set up variables based on the Prolog system (bug#45747).
Copyright-paperwork-exempt: yes
Basil L. Contovounesios [Sun, 27 Dec 2020 14:21:50 +0000 (14:21 +0000)]
Hyperlink symbol names without word syntax in Help
* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2)
(lisp-cl-font-lock-keywords-2): Allow single-character symbol names.
* lisp/help-mode.el (help-xref-symbol-regexp): Also match symbol
names starting with symbol syntax (bug#6601, bug#24309).
* test/lisp/help-mode-tests.el (help-mode-tests-xref-button): Test
hyperlink creation for function names without symbol syntax.
Omar Polo [Sun, 10 Jan 2021 13:25:22 +0000 (14:25 +0100)]
Add support for 'process-attributes' on OpenBSD
* src/sysdep.c (make_lisp_timeval):
(system_process_attributes): Implement for OpenBSD (bug#45729).
Basil L. Contovounesios [Sun, 10 Jan 2021 13:20:51 +0000 (13:20 +0000)]
; * lisp/custom.el (defcustom): Fix last change.
Pedro Andres Aranda Gutierrez [Sun, 10 Jan 2021 13:10:18 +0000 (14:10 +0100)]
Add support for flat buttons
* src/xfaces.c (Finternal_set_lisp_face_attribute):
(realize_gui_face): Add support for `flat-button' (bug#45735).
Copyright-paperwork-exempt: yes
Daniel Martín [Sun, 10 Jan 2021 12:45:44 +0000 (13:45 +0100)]
Minor shortdoc link improvements
* lisp/emacs-lisp/shortdoc.el (shortdoc--display-function): Use
describe-function as a fallback link when a function is not documented
in any Info manual. Also make the link respond to mouse-1, like the
rest of *Help* links, and add a proper help-echo property.
* lisp/help-fns.el (help-fns--mention-shortdoc-groups): Same link
improvement as described before, this time for the shortdoc groups
(bug#45750).
Lars Ingebrigtsen [Sun, 10 Jan 2021 12:43:12 +0000 (13:43 +0100)]
Add a link to the manual from the defcustom doc string
* lisp/custom.el (defcustom): Add a link to the manual for the
:type element.
Lars Ingebrigtsen [Sun, 10 Jan 2021 12:30:25 +0000 (13:30 +0100)]
Revert recent mm-with-part change
* lisp/gnus/mm-decode.el (mm-with-part): Revert
23a887e426f81033b0de2f4c93a8525cb31c28da -- this is the wrong
place to handle this peculiarity.
Michael Albinus [Sun, 10 Jan 2021 12:27:10 +0000 (13:27 +0100)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Sun, 10 Jan 2021 12:26:29 +0000 (13:26 +0100)]
Rework parts of Tramp's insert-directory, bug#45691
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Fix some
unibyte/multibyte inconsistencies. (Bug#45691)
* test/lisp/net/tramp-tests.el (tramp-test17-insert-directory-one-file):
New test.
Lars Ingebrigtsen [Sun, 10 Jan 2021 12:20:49 +0000 (13:20 +0100)]
Add more mm-decode tests
Stefan Kangas [Sat, 9 Jan 2021 11:03:12 +0000 (12:03 +0100)]
* lisp/subr.el (global-map): Doc fix; add cross-reference.
F. Jason Park [Sun, 10 Jan 2021 11:40:53 +0000 (12:40 +0100)]
Create new test file for socks.el
* test/lisp/net/socks-tests.el (socks-tests-auth-filter-url-http): Add
SOCKS5 authentication test and fake server (bug#45162).
Martin Rudalics [Sun, 10 Jan 2021 10:20:56 +0000 (11:20 +0100)]
Fix assertion failure in window_box_height (Bug#45737)
* lisp/window.el (window-sizable): Don't try to grow a mini window
when the root window's minimum height is already larger than its
actual height (Bug#45737).
Philipp Stephani [Sun, 10 Jan 2021 09:14:27 +0000 (10:14 +0100)]
Increase probability that a process test succeeds.
* test/src/process-tests.el
(process-tests/fd-setsize-no-crash/make-process): Work around
potential Emacs bug.
Philipp Stephani [Sun, 10 Jan 2021 08:50:15 +0000 (09:50 +0100)]
Remove a pointless check for WCOREDUMPED.
WCOREDUMPED can only be used if the process was killed.
* src/process.c (status_convert): Don't check WCOREDUMPED if
WIFEXITED.
Tassilo Horn [Sun, 10 Jan 2021 08:40:07 +0000 (09:40 +0100)]
Support keyval style beamer frame labels
* lisp/textmodes/reftex-vars.el (reftex-label-regexps): Support keyval
style beamer frame labels.
Eric Abrahamsen [Sat, 9 Jan 2021 17:45:49 +0000 (09:45 -0800)]
Remove reference to gnus-bug-create-help-buffer
* lisp/gnus/gnus-win.el (gnus-buffer-configuration): Variable no
longer exists.
Philipp Stephani [Sat, 9 Jan 2021 20:17:42 +0000 (21:17 +0100)]
Don't unblock SIGCHLD too early.
We first need to register the received process ID so that
'handle_child_signal' checks it. Otherwise we might never call
'waitpid' for these processes, risking deadlock.
* src/callproc.c (call_process):
* src/process.c (create_process): Don't unblock SIGCHLD before
registering the process ID to wait for.
* src/callproc.c (emacs_spawn): Accept a signal set from the caller.
João Távora [Sat, 9 Jan 2021 18:49:49 +0000 (18:49 +0000)]
Count Flymake diagnostics in modeline by severity, not type
Originally reported in https://github.com/joaotavora/eglot/issues/588
by Pankaj Jangid.
* lisp/progmodes/flymake.el (flymake--mode-line-counter): Count
diagnostics by severity level, not by type.
(Version): Bump to 1.1.1
Stefan Monnier [Sat, 9 Jan 2021 16:35:53 +0000 (11:35 -0500)]
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Fix build of gnus-agent.el
Don't burp on "naked" variable let bindings.
Eli Zaretskii [Sat, 9 Jan 2021 12:12:14 +0000 (14:12 +0200)]
Fix cl-concatenate use in macros
* lisp/emacs-lisp/cl-macs.el (inline): Remove cl-concatenate.
(Bug#45610)
Eli Zaretskii [Sat, 9 Jan 2021 12:07:13 +0000 (14:07 +0200)]
Fix cl-concatenate inlining
* lisp/emacs-lisp/seq.el (seq-concatenate): Auto-load it. Do not
merge to master. (Bug#45610)
Tak Kunihiro [Sat, 9 Jan 2021 09:21:04 +0000 (11:21 +0200)]
Fix infloop in 'pixel-scroll-mode'
* lisp/pixel-scroll.el (pixel-scroll-up, pixel-scroll-down): Avoid
inflooping when 'vertical-motion' doesn't move. (Bug#45628)
Stefan Monnier [Sat, 9 Jan 2021 00:59:16 +0000 (19:59 -0500)]
* lisp/emacs-lisp/cl-macs.el: Optimize self-calls in tail position
Implement a limited form of tail-call optimization for the special
case of recursive functions defined with `cl-labels`. Only self-recursion
is optimized, no attempt is made to handle more complex cases such a mutual
recursion.
The main benefit is to reduce the use of the stack, tho in my limited
tests, this can also improve performance (about half of the way to
a hand-written `while` loop).
(cl--self-tco): New function.
(cl-labels): Use it.
* lisp/subr.el (letrec): Optimize single-binding corner case.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add tests
to check that TCO is working.
Dmitry Gutov [Sat, 9 Jan 2021 00:08:59 +0000 (02:08 +0200)]
Make sure default-directory relates to the originating buffer
* lisp/progmodes/xref.el (xref--show-xref-buffer):
Pick up default-directory value from the caller
(https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00551.html).
(xref-show-definitions-buffer-at-bottom): Same.
Stefan Monnier [Fri, 8 Jan 2021 23:44:13 +0000 (18:44 -0500)]
* lisp/subr.el (letrec): Optimize some non-recursive bindings
* lisp/emacs-lisp/macroexp.el (macroexp--fgrep): Look inside bytecode
objects as well.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
* test/lisp/subr-tests.el (subr--tests-letrec): New tests.
Stefan Monnier [Fri, 8 Jan 2021 23:28:47 +0000 (18:28 -0500)]
* lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Fix last change
Stefan Monnier [Fri, 8 Jan 2021 22:57:26 +0000 (17:57 -0500)]
* lisp/emacs-lisp/macroexp.el (macroexp--fgrep): Rename from `pcase--fgrep`
* lisp/emacs-lisp/cl-generic.el (cl--generic-fgrep): Delete.
(cl--generic-lambda): Use `macroexp--pacse` instead.
* lisp/emacs-lisp/pcase.el (pcase--fgrep): Rename to `macroexp--fgrep`.
Stefan Kangas [Fri, 8 Jan 2021 14:26:02 +0000 (15:26 +0100)]
Merge recently added kbd tests
* test/lisp/subr-tests.el (subr--kbd): Merge test...
(subr-test-kbd): ...with this one. Fix thinko in my previous commit.
Thanks to Mattias Engdegård <mattiase@acm.org>.
Stefan Kangas [Fri, 8 Jan 2021 14:16:02 +0000 (15:16 +0100)]
Lift define-prefix-command to Lisp
* lisp/subr.el (define-prefix-command): New defun.
* src/keymap.c (Fdefine_prefix_command): Remove DEFUN.
(syms_of_keymap): Remove defsubr for Fdefine_prefix_command.
* test/lisp/subr-tests.el (subr-test-define-prefix-command): New
test.
Stefan Kangas [Fri, 8 Jan 2021 11:27:32 +0000 (12:27 +0100)]
* test/lisp/subr-tests.el (subr-test-kbd): New test.
Stefan Kangas [Thu, 7 Jan 2021 18:01:55 +0000 (19:01 +0100)]
Remove unused DEFSYM
* src/minibuf.c (syms_of_minibuf) <Qhistory_length>: Remove unused
DEFSYM.